const env = launchContext.get_environment();
// Use DO_NOT_REAP_CHILD to avoid adouble-fork internally
// since ibus-daemon refuses to start with init as its parent.
- const [success_, pid] = GLib.spawn_async(
+ const pid = Shell.util_spawn_async(
null, cmdLine, env,
- GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
- () => {
- try {
- global.context.restore_rlimit_nofile();
- } catch (err) {
- }
- }
- );
+ GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD);
GLib.child_watch_add(
GLib.PRIORITY_DEFAULT,
pid,
* this will throw an error.
*/
export function trySpawn(argv) {
- let success_, pid;
+ let pid;
try {
const launchContext = global.create_app_launch_context(0, -1);
- [success_, pid] = GLib.spawn_async(
+ pid = Shell.util_spawn_async(
null, argv, launchContext.get_environment(),
- GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD,
- () => {
- try {
- global.context.restore_rlimit_nofile();
- } catch (err) {
- }
- }
- );
+ GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD);
} catch (err) {
/* Rewrite the error in case of ENOENT */
if (err.matches(GLib.SpawnError, GLib.SpawnError.NOENT)) {
try {
const launchContext = global.create_app_launch_context(0, -1);
- let [success_, pid, stdin, stdout, stderr] =
- GLib.spawn_async_with_pipes(
+ let [pid, stdin, stdout, stderr] =
+ Shell.util_spawn_async_with_pipes(
null, /* pwd */
argv,
launchContext.get_environment(),
- GLib.SpawnFlags.DO_NOT_REAP_CHILD,
- () => {
- try {
- global.context.restore_rlimit_nofile();
- } catch (err) {
- }
- });
+ GLib.SpawnFlags.DO_NOT_REAP_CHILD);
this._childPid = pid;
this._stdin = new GioUnix.OutputStream({fd: stdin, close_fd: true});